package py.edu.ucom.poo.waterloo.gui;

import py.edu.ucom.poo.waterloo.Casilla;
import py.edu.ucom.poo.waterloo.Ficha;
import py.edu.ucom.poo.waterloo.Movimiento;
import py.edu.ucom.poo.waterloo.Tablero;
import py.edu.ucom.poo.waterloo.agente.Agente;

public interface WaterlooListener {
        /**
         * @param t - Se recibe el tablero Inicial para ubicar graficamente
         * @param rojo - Se recibe el Objeto Agente Rojo
         * @param azul - Se recibe el objeto Agente Azul
         * @param sistemaJuego - Se recibe el parametro para identificar el sistema de juego
         */
        public void tableroGuiInicial(Tablero t,Agente rojo,Agente azul,int sistemaJuego);
        /**
         * @param mov Se recibe el movimiento Origen, Destino
         */
        public void moverFicha(Movimiento mov);
        /**
         * @param casillaGanadora - Casilla tiene la ficha y todos sus atributos del ganador
         * @param casillaPerdedora - Casilla tiene la ficha y todos sus atributos del perdedor
         * @param sistemaJuego - define el tipo de juego
         * @param opcionBomba - define el tipo de sistema de bombas para eliminarlas o no
         */
        public void waterloo(Casilla casillaGanadora,Casilla casillaPerdedora,int sistemaJuego,int opcionBomba);
        /**
         * Metodo que indica al GUI el fin de turno
         */
        public void finTiempoTurno();
        /**
         * @param a Metodo que indica al GUI quien esta jugando ahora
         */
        public void cambioTurno(Agente a);
        /**
         * @param a Metodo que indica al GUI que el juego a terminado.
         */
        public void finJuego(Agente a);
}

